home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Games / Pentominoes 2.0 / Pent code / pent globals.h < prev    next >
Text File  |  1995-07-28  |  2KB  |  82 lines

  1. #ifndef __PENT_GLOBALS_H__
  2. #define __PENT_GLOBALS_H__
  3.  
  4. #define kBoardRowsMin            3
  5. #define kBoardRowsMax            20
  6. #define kBoardRowsDefault        8
  7. #define kBoardColumnsMin        3
  8. #define kBoardColumnsMax        20
  9. #define kBoardColumnsDefault    8
  10. #define kPieceSizeMin            15
  11. #define kPieceSizeMax            50
  12. #define kPieceSizeDefault        31
  13. #define kBoardResType            'PBrd'
  14.  
  15. #if PRAGMA_ALIGN_SUPPORTED
  16. #pragma options align=mac68k
  17. #endif
  18. struct MyBoardRec
  19. {
  20.     short            numRows;
  21.     short            numColumns;
  22.     Boolean            locked;
  23.     Boolean            unused;
  24.     Str31            title;
  25.     unsigned char    boardData[kBoardRowsMax][kBoardColumnsMax];
  26. };
  27. #if PRAGMA_ALIGN_SUPPORTED
  28. #pragma options align=reset
  29. #endif
  30.  
  31. typedef struct MyBoardRec        MyBoardRec, *MyBoardPtr;
  32.  
  33. enum GameError
  34. {
  35.     eNoError=0,
  36.     eNotAPiece,
  37.     eHighlightFirst,
  38.     ePieceNotMatch,
  39.     ePieceUsed
  40. };
  41.  
  42. enum    /* special tiles */
  43. {
  44.     kSelectedPiece=12,    /* part of a selected piece */
  45.     kNoTile,            /* tile is blacked out, unplayable */
  46.     kEmptyTile,            /* tile is empty, like at game startup */
  47.     kSelectedTile        /* tile is selected but no piece yet */
  48. };
  49.  
  50. typedef short            GameError;
  51.  
  52. /* these are initialized at program startup */
  53. extern    short            gShapes[12][5][5];
  54.  
  55. /* these are initialized at game startup */
  56. extern    short            gThisGameTileSize;
  57.  
  58. /* these are initialized at game startup & need to be saved in game file */
  59. extern    short            gNumHilited;
  60. extern    unsigned char    gBoard[kBoardRowsMax][kBoardColumnsMax];
  61. extern    short            gNumRows;
  62. extern    short            gNumCols;
  63. extern    Boolean            gPieceUsed[12];
  64. extern    short            gNumPlayed;
  65. extern    unsigned char    gPiecesPlayed[12];
  66. extern    short            gSelectedPieceColor;
  67.  
  68. /* these are read from & written to prefs file */
  69. extern    short            gTileSize;
  70. extern    Boolean            gDisplayMessages;
  71. extern    Boolean            gGraphicEffects;
  72. extern    Boolean            gShowFloat;
  73. extern    Boolean            gAnchorFloat;
  74. extern    Boolean            gShowMessageBox;
  75. extern    Boolean            gShowToolbar;
  76. extern    Boolean            gAskBeforeClosing;
  77. extern    Boolean            gAutoSize;
  78. extern    short            gCurrentBoardIndex;
  79. extern    Str31            gCurrentGroupName;
  80.  
  81. /* these are used in board editor */
  82. extern    MyBoardRec        gCurrentBoar